package com.mib.snmp;

import org.snmp4j.Snmp;
import org.snmp4j.Target;
import org.snmp4j.security.SecurityLevel;
import org.snmp4j.smi.OID;

public class SnmpBuilder {

    private Snmp snmp;
    private Target target;

    private String ip;
    private Integer port;
    private Integer version;
    private String defaultProtocol;
    private String community;
    private SecurityLevel securityLevel;
    private String securityName;
    private OID authGeneric;
    private String authPass;
    private OID privacyGeneric;
    private String privacyPass;

    public Snmp getSnmp() {
        return snmp;
    }

    public SnmpBuilder setSnmp(Snmp snmp) {
        this.snmp = snmp;
        return this;
    }

    public Target getTarget() {
        return target;
    }

    public SnmpBuilder setTarget(Target target) {
        this.target = target;
        return this;
    }

    public String getIp() {
        return ip;
    }

    public SnmpBuilder setIp(String ip) {
        this.ip = ip;
        return this;
    }

    public Integer getPort() {
        return port;
    }

    public SnmpBuilder setPort(Integer port) {
        this.port = port;
        return this;
    }

    public Integer getVersion() {
        return version;
    }

    public SnmpBuilder setVersion(Integer version) {
        this.version = version;
        return this;
    }

    public String getDefaultProtocol() {
        return defaultProtocol;
    }

    public SnmpBuilder setDefaultProtocol(String defaultProtocol) {
        this.defaultProtocol = defaultProtocol;
        return this;
    }

    public String getCommunity() {
        return community;
    }

    public SnmpBuilder setCommunity(String community) {
        this.community = community;
        return this;
    }

    public SecurityLevel getSecurityLevel() {
        return securityLevel;
    }

    public SnmpBuilder setSecurityLevel(SecurityLevel securityLevel) {
        this.securityLevel = securityLevel;
        return this;
    }

    public String getSecurityName() {
        return securityName;
    }

    public SnmpBuilder setSecurityName(String securityName) {
        this.securityName = securityName;
        return this;
    }

    public OID getAuthGeneric() {
        return authGeneric;
    }

    public SnmpBuilder setAuthGeneric(OID authGeneric) {
        this.authGeneric = authGeneric;
        return this;
    }

    public String getAuthPass() {
        return authPass;
    }

    public SnmpBuilder setAuthPass(String authPass) {
        this.authPass = authPass;
        return this;
    }

    public OID getPrivacyGeneric() {
        return privacyGeneric;
    }

    public SnmpBuilder setPrivacyGeneric(OID privacyGeneric) {
        this.privacyGeneric = privacyGeneric;
        return this;
    }

    public String getPrivacyPass() {
        return privacyPass;
    }

    public SnmpBuilder setPrivacyPass(String privacyPass) {
        this.privacyPass = privacyPass;
        return this;
    }

    public SnmpBuilder build() {
        return SnmpFactory.createSNMP(this);
    }
}
